#include <stdio.h>

typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
typedef unsigned char byte_t;
typedef unsigned short wchar_t;

struct __attribute__((packed, aligned(4))) fat32Dentry_t {
    char name[11];
    byte_t attribute;
    byte_t reservedWindowsNT;
    uint8_t ctime_ms;     // 十分之一秒为单位
    uint16_t ctime;       //文件创建时间, 小时5位, 分钟6位, 秒5位(*2=实际秒数)
    uint16_t cdate;       //文件创建日期, 年7位, 月4位, 天5位
    uint16_t adate;       //上次访问日期
    uint16_t start_high;  //第一簇号高16位
    uint16_t mtime;       //上次修改时间
    uint16_t mdate;       //上次修改日期
    uint16_t start_low;   //第一簇号低16位
    uint32_t size;        //文件大小
};

struct __attribute__((packed, aligned(4))) fat32Dslot_t {
    uint8_t sequence;         //在长文件名条目序列中的顺序
    wchar_t f5Name[5];        //前5个两字节字符
    byte_t attribute;         //始终等于0x0F
    byte_t type;              // 0
    uint8_t checksum;         //校验和
    wchar_t m6Name[6];        //中间6个两字节字符
    uint16_t startClusterNo;  // 0
    wchar_t e2Name[2];        //最后2个两字节字符
};

union fat32Entry_t {
    struct fat32Dentry_t shortNameDir;
    struct fat32Dslot_t longNameDir;
};

int
main() {
    printf("%d\n", 0b101 & 0b110);
    return 0;
}